From 8b67791a93cc7c8f9872d09ffcfc509d64cf383a Mon Sep 17 00:00:00 2001 From: "awilliam@xenbuild.aw" Date: Sun, 29 Oct 2006 11:05:53 -0700 Subject: [PATCH] [IA64] Revert PAL_VM_SUMMARY and PAL_VM_INFO handling for VTI domain Use info from call on physical CPU and only modify virtualized fields. Signed-off-by: Anthony Xu --- xen/arch/ia64/xen/fw_emul.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/xen/arch/ia64/xen/fw_emul.c b/xen/arch/ia64/xen/fw_emul.c index 6c9eb054f4..044fec7e9b 100644 --- a/xen/arch/ia64/xen/fw_emul.c +++ b/xen/arch/ia64/xen/fw_emul.c @@ -218,7 +218,19 @@ xen_pal_emulator(unsigned long index, u64 in1, u64 in2, u64 in3) status = ia64_pal_cache_summary(&r9,&r10); break; case PAL_VM_SUMMARY: - { + if (VMX_DOMAIN(current)) { + pal_vm_info_1_u_t v1; + pal_vm_info_2_u_t v2; + status = ia64_pal_vm_summary((pal_vm_info_1_u_t *)&v1, + (pal_vm_info_2_u_t *)&v2); + v1.pal_vm_info_1_s.max_itr_entry = NITRS - 1; + v1.pal_vm_info_1_s.max_dtr_entry = NDTRS - 1; + v2.pal_vm_info_2_s.impl_va_msb -= 1; + v2.pal_vm_info_2_s.rid_size = + current->domain->arch.rid_bits; + r9 = v1.pvi1_val; + r10 = v2.pvi2_val; + } else { /* Use xen-specific values. hash_tag_id is somewhat random! */ static const pal_vm_info_1_u_t v1 = @@ -242,14 +254,18 @@ xen_pal_emulator(unsigned long index, u64 in1, u64 in2, u64 in3) v2.pvi2_val = 0; v2.pal_vm_info_2_s.rid_size = current->domain->arch.rid_bits; - v2.pal_vm_info_2_s.impl_va_msb = - VMX_DOMAIN(current) ? GUEST_IMPL_VA_MSB : 50; + v2.pal_vm_info_2_s.impl_va_msb = 50; r9 = v1.pvi1_val; r10 = v2.pvi2_val; status = PAL_STATUS_SUCCESS; } break; case PAL_VM_INFO: + if (VMX_DOMAIN(current)) { + status = ia64_pal_vm_info(in1, in2, + (pal_tc_info_u_t *)&r9, &r10); + break; + } #ifdef VHPT_GLOBAL if (in1 == 0 && in2 == 2) { /* Level 1: VHPT */ -- 2.30.2